using System;
using System.Collections.Generic;

namespace ECCIT.Data
{
    public delegate object ClassFieldCreatorDelegate(Type type, params object[] primaryKeys);

    public class ClassFieldCreator
    {
        public Type ClassType { get; set; }
        public ClassFieldCreatorDelegate ClassFieldCreatorHandler { get; set; }

        public ClassFieldCreator(Type type, ClassFieldCreatorDelegate handler)
        {
            this.ClassType = type;
            this.ClassFieldCreatorHandler = handler;
        }

        public static ClassFieldCreator CreateInstance(Type type, ClassFieldCreatorDelegate handler)
        {
            return new ClassFieldCreator(type, handler);
        }
    }

	/// <summary>
	/// 
	/// </summary>
    public interface IField
	{
		Type Type {get; set;}
		string PropertyName {get; set;}
		IColumn Column {get; set;}
        ClassFieldCreator ClassFieldCreator { get; set; }
	}
}
